home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / telecomm / fnordadl / fn132src.zoo / ref-man / modem.tex < prev    next >
Text File  |  1991-09-02  |  17KB  |  500 lines

  1. @comment Tell Emacs to use -*-texinfo-*- mode
  2. @comment $Id: modem.tex,v 2.5 91/09/02 01:37:50 adrian Exp $
  3.  
  4. @node Modem Stuff, Events, The Sysop Command Reference, Top
  5. @chapter Modem Stuff
  6. @cindex Modems
  7.  
  8. Modems are finicky beasts, and cajoling them into talking to your
  9. Fnordadel properly can be a tricky piece of business.  This chapter, then,
  10. deals with the various modem configuration options in Fnordadel, and
  11. gives some tips on how to make a recalcitrant modem behave.
  12.  
  13. @node Basic Modem Requirements, Setting Up the Modem, Modem Stuff, Modem Stuff
  14. @section Basic Modem Requirements
  15.  
  16. To run a Fnordadel, you must have a modem possessing a
  17. modicum of basic features.  These are:
  18.  
  19. @itemize @bullet
  20. @item
  21. Must be able to auto-answer the phone.
  22. @item
  23. Must be able to respond to DTR (Data Terminal Ready)
  24. line control by the computer.  DTR is supposed to be
  25. pin 20 on the RS-232 connector.  Ideally, the modem
  26. should be able to hang up the phone, disable auto
  27. answer, and go to `command' mode when the computer flips
  28. DTR off (and reverse the above when DTR goes high).
  29. @item
  30. Must have the CD (Carrier Detect) line tracking the
  31. status of the carrier.  CD (or DCD) is supposed to be
  32. pin 8 on the RS-232 connector.
  33. @item
  34. If you want to do any calling out (i.e., during networking
  35. or whatever), the modem must be able to autodial the
  36. phone using a command string.
  37. @end itemize
  38.  
  39. Most modems are perfectly capable of all of the above.
  40. If your modem is advertised as being ``Hayes-compatible'', then it
  41. @emph{should} work fine.  The DTR and CD settings will likely have to
  42. be adjusted, since most modems do not by default listen to DTR
  43. and most leave the CD line high all the time.  These behaviours
  44. can be changed either by using a DIP-switch or in the software;
  45. it's almost always possible.
  46.  
  47. STadel 3.3b, from which Fnordadel is descended, was
  48. advertised to work with the following list of modems, and there's
  49. no reason to believe that we've introduced any incompatibilities:
  50.  
  51. @itemize @bullet
  52. @item
  53. Avatex 1200, 1200E, 1200HC, 2400HC    
  54. @item
  55. Everex 2400
  56. @item
  57. FastComm 19200
  58. @item
  59. Hayes 1200, 2400
  60. @item
  61. Incomm 2400
  62. @item
  63. MultiTech 1200, 2400
  64. @item
  65. Prometheus 2400B2
  66. @item
  67. Supra 2400
  68. @item
  69. Telebit Trailblazer 19,200
  70. @item
  71. USR Courier 2400, HST 9600
  72. @end itemize
  73.  
  74. @noindent
  75. The Fnordadel developers both use the Supra 2400; we've been
  76. running 24 hours a day for a few years now and have had no problems
  77. with the wee beasties.  Your mileage may vary, of course.
  78.  
  79. @node Setting Up the Modem
  80. @section Setting Up the Modem
  81. @cindex Modem setup
  82. @cindex Setup, modem
  83.  
  84. If your modem meets the above criteria, then we're off.
  85. (If it doesn't, then go buy a real modem---1200 and 2400 baud Hayes
  86. compatible modems are dirt cheap these days.)  In this section we'll
  87. describe some of the @file{ctdlcnfg.sys} options for the modem.
  88.  
  89. @node Baud rate, Initialisation, Setting Up the Modem, Setting Up the Modem
  90. @subsection Baud rate
  91. @cindex Baud rates supported
  92.  
  93. You must tell Fnordadel the highest baud rate
  94. at which the modem will function; this is accomplished by
  95. setting the variable
  96. @vindex sysbaud
  97. @code{#sysbaud} in @file{ctdlcnfg.sys}.
  98. @vindex sysbaud
  99. @code{#sysbaud}
  100. can have any one of the following values:
  101.  
  102. @table @code
  103. @item 0
  104. 300 bps only
  105. @item 1
  106. 300 and 1200 bps
  107. @item 2
  108. 300, 1200 and 2400 bps
  109. @item 3
  110. 300, 1200, 2400 and 9600 bps
  111. @item 4
  112. 300 up to 19200 bps
  113. @end table
  114.  
  115. Note that 4800 bps is not supported.  The ST serial port
  116. will do 4800, but we've never heard of a modem that will,
  117. other than ones that will also go faster.  If for some
  118. reason you find yourself in dire need of 4800, see @ref{Fnordadel Support}.
  119.  
  120. @node Initialisation, Baud-rate detection, Baud rate, Setting Up the Modem
  121. @subsection Initialisation
  122. @cindex Modem setup
  123. @cindex Modem initialisation
  124. @cindex Initialisation, modem
  125.  
  126. Hayes compatible modems, at least, understand
  127. a set of commands to control their behaviour.  Fnordadel
  128. requires that the modem be set up in a certain way; thus,
  129. you must define a command string which will be sent to the
  130. modem every time Fnordadel wants to reset the modem.
  131. Simply put a line like the following:
  132. @vindex modemsetup
  133. @example
  134. #modemsetup "AT &C1 &D2 V0 E0 M0 Q0 X4 S0=1\r%10"
  135. @end example
  136. @noindent
  137. in your @file{ctdlcnfg.sys}.  The example above will work on many
  138. Hayes-compatible modems.  The various parts mean:
  139.  
  140. @itemize @bullet
  141. @item
  142. The initial @samp{AT} tells the modem that a command
  143. string is coming.
  144. @item
  145. @samp{&C1 &D2} sets up the required behaviour for the
  146. CD and DTR lines (@pxref{Basic Modem Requirements}).  If your
  147. modem controls CD and DTR with hardware switches,
  148. it probably will not support these commands, so you may have to
  149. remove them.
  150. @item
  151. @samp{V0 E0 M0 Q0} selects numeric result codes (@pxref{Result codes}),
  152. turns off command echoing, turns
  153. off the built-in speaker, and turns on result codes.
  154. @item
  155. @samp{X4} tells the modem to return the full range of
  156. result codes (@pxref{Result codes}).
  157. @item
  158. @samp{S0=1} tells the modem to answer the phone on the
  159. first ring.
  160. @item
  161. @samp{\r} represents a carriage return, which must be
  162. there to terminate the command string.
  163. @item
  164. And finally, @samp{%10} is a special notation which
  165. causes Fnordadel to pause for 10 tenths of a
  166. second (i.e., one second).  This is necessary for
  167. some modems, which take a comparatively long time
  168. to process the command string.  (See the front of
  169. @file{ctdlcnfg.doc} for more on the format of these sorts
  170. of string variables.)
  171. @end itemize
  172.  
  173. Please be warned that your modem may not recognise
  174. some or all of the above codes; they may be different, or
  175. absent, or whatever.  We've seen some pretty mental modem
  176. behaviour, so be sure to read your modem manual.
  177.  
  178. A trick which has proved useful with many modems
  179. is as follows:  If the modem allows you to save its
  180. settings in non-volatile @sc{ram} (i.e., if the settings can be
  181. preserved when the modem is powered off), then you can use
  182. a terminal program of some kind to manually set up the
  183. modem the way Fnordadel wants it, by sending your version
  184. of the above command string to the modem.  Then use the command
  185. to save settings (usually @samp{AT&W} or something).  At this
  186. point you can simply use @samp{ATZ\r%10} as the
  187. @vindex modemsetup
  188. @code{#modemsetup}
  189. string; @samp{ATZ} has the effect of resetting the modem to the
  190. saved state.  The advantage of this is that the string is
  191. shorter, so it can speed things up a bit, especially during
  192. networking or auto-dialing when the modem is being reset
  193. many times.
  194.  
  195. @node Baud-rate detection, Dialing out, Initialisation, Setting Up the Modem
  196. @subsection Baud-rate detection
  197. @cindex Baud-rate detection
  198.  
  199. Fnordadel must be able to detect the baud rate
  200. of incoming calls, and it has a couple of ways to
  201. accomplish this.  The first is by @code{searchbaud}, and the
  202. second is using result codes.  Result codes are by far the
  203. better method, and since most modems can support the
  204. feature, we recommend it.
  205.  
  206. @node Searchbaud, Result codes, Baud-rate detection, Baud-rate detection
  207. @subsubsection Searchbaud
  208. @cindex Baud rate searching
  209.  
  210. If you define the @file{ctdlcnfg.sys} variable
  211. @vindex searchbaud
  212. @code{#searchbaud} to be @samp{1}, it will cause Fnordadel to
  213. loop through the range of supported baud rates (as
  214. defined by
  215. @vindex sysbaud
  216. @code{#sysbaud}; @pxref{Baud rate}), waiting
  217. one-half second at each rate for a carriage return
  218. (@samp{<CR>}) from the caller.  The upshot of this is that
  219. callers must hit @samp{<CR>} once or twice when they
  220. connect with the @sc{bbs}.
  221.  
  222. @vindex searchbaud
  223. If @code{#searchbaud} is @samp{0}, then your @sc{bbs} will
  224. work at @emph{only} the highest baud rate represented by
  225. @vindex sysbaud
  226. @code{#sysbaud}.  This is last-resort stuff, kids.  You
  227. should normally run with
  228. @vindex searchbaud
  229. @code{#searchbaud} set to @samp{1}
  230. unless your modem absolutely fails to properly
  231. detect other speed connections.  (If your modem is this stupid, it might
  232. be time to consider getting another one.)
  233.  
  234. The variable
  235. @vindex connectprompt
  236. @code{#connectprompt} modifies
  237. the behaviour of
  238. @vindex searchbaud
  239. @code{#searchbaud} slightly; if defined to be @samp{1}, it
  240. causes Fnordadel to loop through the baud rates,
  241. spitting out a prompt which says ``Type return'' and
  242. waiting fo